gusucode.com > GUI界面实现语音增强matlab源码程序 > speech enhancement/sub_improve.m

    %改进的减谱法语音增强;
a=9;       %指数
b=1;     %乘积系数;
[y,fs,bit]=wavread('g:\5.wav');
N=ceil(length(y)/160);
snr1=snr_count(y);
Noise=b*prepower(y,16,a);
for n=1:160:N*160,
   for j=1:160,
      if(length(y)-n-j<0),
         x(j)=0;
      else 
         x(j)=y(n+j-1);
      end;  
     
   end;
   %FFT transfer
   X=fft(x,160);
   %count phase
   phase=angle(X);
   Y=sum2(X,a);
   Y=ifft(Y,160);
   S=max((Y-Noise),0);
   S=fft(S,160);
   S=S.^(1/a);
   for k=1:160,
      S(k)=S(k)*exp(i*phase(k));
   end;

s(n:n+159)=ifft(S,160);
end;
wavwrite(s,fs,bit,'G:\7.wav');